/**
 * @description 生成一个符合 RFC4122 v4 规范的通用唯一标识符 (UUID)。
 * 使用浏览器内置的 crypto.randomUUID() API，具有高安全性和唯一性。
 * @returns {string} 一个唯一的 ID 字符串，例如: 'f8c3c3a0-4da0-4f5c-8d1e-e7a7e8d3b4a5'
 */
export const generateId = () => {
  // crypto.randomUUID() 在所有现代浏览器和安全的上下文(HTTPS)中都可用。
  if (crypto && crypto.randomUUID) {
    return crypto.randomUUID();
  } else {
    // 为不支持此 API 的旧环境提供一个备选方案
    console.warn('crypto.randomUUID() is not available. Falling back to a less robust method.');
    return 'xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx'.replace(/[xy]/g, function(c) {
      const r = Math.random() * 16 | 0, v = c == 'x' ? r : (r & 0x3 | 0x8);
      return v.toString(16);
    });
  }
};